home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HPAVC
/
HPAVC CD-ROM.iso
/
PWAULTP3.ZIP
/
PWAPRGMS.A02
/
PWA95
/
PWAEBL10.ZIP
/
EBL.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1995-04-09
|
4KB
|
366 lines
;------------------------------------------------------------------------------
; .ss.
; `²²'
; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
; .sS²°$$$²²°"' d²°'
; .$$² .$$'
; $$$.,d$$'
; `²S$$S²'
;------------------------------------------------------------------------------
; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
;------------------------------------------------------------------------------
; PPE 3.O1 (Encryption type I) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Boolean BOOLEAN001
Boolean BOOLEAN002
String STRING001
String STRING002
String STRING003
String STRING004
String STRING005
String STRING012
Byte BYTE001
Byte BYTE002
Byte BYTE003
Byte BYTE004
Byte BYTE005
Byte BYTE006
Byte BYTE007
Byte BYTE008
Declare Procedure PROC001()
Declare Procedure PROC002()
Declare Procedure PROC003(Byte BYTE009, Var Byte BYTE010, Var Byte BYTE011)
Declare Procedure PROC005()
Declare Procedure PROC006(Byte BYTE014)
Declare Procedure PROC007()
Declare Procedure PROC008(Byte BYTE012)
Declare Procedure PROC009(Byte BYTE013)
Declare Procedure PROC010(String STRING011)
;------------------------------------------------------------------------------
PROC001()
PROC005()
PROC002()
End
;------------------------------------------------------------------------------
Procedure PROC002()
Boolean BOOLEAN002
Byte BYTE006
Byte BYTE007
Byte BYTE008
AnsiPos BYTE003, BYTE002
BYTE008 = BYTE002
PROC008(BYTE008)
BYTE006 = 1
BOOLEAN002 = 0
:LABEL001
If (BOOLEAN002) Goto LABEL002
BYTE007 = Asc(Inkey())
Delay 1
Select Case (BYTE007)
Case 13
PROC006(BYTE006)
PROC005()
PROC008(BYTE008)
Case 76, 85, 56
PROC009(BYTE008)
Dec BYTE006
If (BYTE006 < 1) BYTE006 = BYTE001
BYTE008 = BYTE008 - BYTE004
If (BYTE008 < BYTE002) BYTE008 = BYTE002 + BYTE001 * BYTE004 - 2
PROC008(BYTE008)
Case 82, 68, 50
PROC009(BYTE008)
Inc BYTE006
If (BYTE006 > BYTE001) BYTE006 = 1
BYTE008 = BYTE008 + BYTE004
If (BYTE008 > BYTE002 + BYTE001 * BYTE004 - 1) BYTE008 = BYTE002
PROC008(BYTE008)
Case 27, 81, 113
BOOLEAN002 = 1
Case Else
PROC003(Asc(Lower(Chr(BYTE007))) - 96, BYTE008, BYTE006)
End Select
Goto LABEL001
:LABEL002
PROC007()
EndProc
;------------------------------------------------------------------------------
Procedure PROC003(Byte BYTE009, Var Byte BYTE010, Var Byte BYTE011)
If ((BYTE009 >= 1) && (BYTE009 <= BYTE001)) Then
PROC009(BYTE010)
BYTE010 = BYTE010 + (BYTE009 - BYTE011) * BYTE004
PROC008(BYTE010)
BYTE011 = BYTE009
PROC006(BYTE011)
PROC005()
PROC008(BYTE010)
Endif
EndProc
;------------------------------------------------------------------------------
Procedure PROC007()
AnsiPos 1, U_PageLen
DefColor
PrintLn "@X08Enhanced Bulletin Lister v1.0 by Drew [PWA]@X07"
EndProc
;------------------------------------------------------------------------------
Procedure PROC008(Byte BYTE012)
STRING004 = ScrText(BYTE003, BYTE012, BYTE005, 1)
AnsiPos BYTE003, BYTE012
Print STRING003 + StripAtx(STRING004)
EndProc
;------------------------------------------------------------------------------
Procedure PROC009(Byte BYTE013)
AnsiPos BYTE003, BYTE013
Print STRING004
EndProc
;------------------------------------------------------------------------------
Procedure PROC005()
Cls
DispFile STRING002, 0
EndProc
;------------------------------------------------------------------------------
Procedure PROC006(Byte BYTE014)
String STRING005
FOpen 1, STRING001, 0, 2
FSeek 1, (BYTE014 - 1) * 30, 0
FRead 1, STRING005, 30
FClose 1
AnsiPos 1, U_PageLen
DispFile RTrim(STRING005, " "), 0
If (BOOLEAN001) Wait
EndProc
;------------------------------------------------------------------------------
Procedure PROC001()
Byte BYTE015
Byte BYTE016
Byte BYTE017
String STRING006
String STRING007
String STRING008
String STRING009
String STRING010
Boolean BOOLEAN003
BYTE015 = TokCount()
If (BYTE015) Then
STRING008 = "B "
For BYTE016 = 1 To BYTE015
STRING008 = STRING008 + " " + GetToken()
Next
KbdStuff STRING008
End
Endif
STRING006 = ReadLine(PCBDat(), 31)
If (Exist(STRING006)) Goto LABEL003
PrintLn STRING006 + " does not exist. Bad path in PCBOARD.DAT"
End
:LABEL003
STRING002 = ReadLine(STRING006, CurConf() * 33 + 24)
STRING001 = ReadLine(STRING006, CurConf() * 33 + 25)
If (Exist(STRING001)) Goto LABEL004
KbdStuff "B"
End
:LABEL004
BYTE001 = FileInf(STRING001, 4) / 30
STRING007 = PPEPath() + "EBL.CFG"
If (Exist(STRING007)) Goto LABEL005
PrintLn "@X0CError! " + STRING007 + " does not exist!@X07"
End
:LABEL005
FOpen 1, STRING007, 0, 2
FDefIn 1
FDGet STRING008
If (Lower(STRING008) == "yes") Then
BOOLEAN001 = 1
Else
BOOLEAN001 = 0
Endif
FDGet STRING010
FDGet STRING008
BOOLEAN003 = 0
While (STRING008 <> "<eof>") Do
Tokenize STRING008
STRING009 = GetToken()
If ((Lower(STRING009) == "main") && (CurConf() == 0)) Then
BOOLEAN003 = 1
Break
Continue
Endif
BYTE017 = S2I(STRING009, 10)
If ((CurConf() <> 0) && (BYTE017 == CurConf())) Then
BOOLEAN003 = 1
Break
Continue
Endif
FDGet STRING008
EndWhile
FClose 1
If (BOOLEAN003) Then
BYTE002 = S2I(GetToken(), 10)
BYTE003 = S2I(GetToken(), 10)
BYTE004 = S2I(GetToken(), 10)
BYTE005 = S2I(GetToken(), 10)
STRING003 = GetToken()
Else
PROC010(STRING010)
End
Endif
GetUser
EndProc
;------------------------------------------------------------------------------
Procedure PROC010(String STRING011)
String STRING012
Newline
InputStr STRING011, STRING012, 7, 3, Mask_Num() + Chr(13), 8192 + 64
If (STRING012 <> "") Then
KbdStuff "B " + STRING012
Endif
End
EndProc
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 7 End
; 1 Cls
; 1 Wait
; 30 Goto
; 36 Let
; 2 Print
; 3 PrintLn
; 22 If
; 2 DispFile
; 2 FOpen
; 2 FClose
; 1 GetUser
; 1 DefColor
; 1 InputStr
; 1 Delay
; 1 Inc
; 1 Dec
; 1 Newline
; 1 Tokenize
; 3 KbdStuff
; 5 AnsiPos
; 1 FSeek
; 1 FRead
; 1 FDefIn
; 4 FDGet
; 9 EndProc
;
;
; ■ Functions used :
;
; 6 *
; 1 /
; 17 +
; 6 -
; 14 ==
; 3 <>
; 3 <
; 2 <=
; 2 >
; 3 >=
; 17 !
; 5 &&
; 7 ||
; 3 Lower()
; 2 Chr()
; 2 Asc()
; 1 RTrim()
; 1 StripAtx()
; 1 Inkey()
; 1 Mask_Num()
; 5 CurConf()
; 1 PCBDat()
; 1 PPEPath()
; 3 ReadLine()
; 7 GetToken()
; 3 Exist()
; 5 S2I()
; 1 FileInf()
; 1 TokCount()
; 1 ScrText()
;
;------------------------------------------------------------------------------
;
; Analysis flags : d
;
; d - Access PCBOARD.DAT ■ 2
; Program gets the full pathname to PCBOARD.DAT, this may be usefull
; for many PPE so they can find various informations on the system
; (system paths, max number of lines in messages, ...) but it may also
; be a way to gather vital informations.
; ■ Search for : PCBDAT()
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 1 For/Next
; 1 While/EndWhile
; 7 If/Then or If/Then/Else
; 1 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------